Field of the Invention
The present invention relates generally to biomechanical sensors used for biofeedback, to biomechanical sensors that interface with computing devices, and to detecting transitions between sitting and standing states using such devices attached to a user.
Description of the Prior Art
Monitoring and tracking posture, postural changes, and activity of a user presents many challenges. One system for monitoring and tracking posture, postural changes, and activity uses a sensor attached to the user to collect data. The sensor produces a stream of three-dimensional data which is processed by a microprocessor.
A challenge in such a system is detecting transitions between sitting and standing states; the user moving from standing to sitting, or the user moving from sitting to standing. Information on whether the user is sitting or standing is needed, for example, to collect reliable statistics about the time the user spends sitting versus the time the user spends standing. Transitions between sitting and standing states must be detected to collect these statistics.
One type of sensor attached to the user to detect such transitions, as well as to track posture, postural changes, and user activity is an accelerometer which measures acceleration of the user in three orthogonal axes: y (up and down), z (forward and backward), and x (side to side). The accelerometer is attached to the user, for example as a belt attaching the accelerometer along the spine, a pendant or necklace attaching the accelerometer along the sternum or chest, or using other means of attaching the accelerometer to the user's torso, head, or neck. Particularly when attached to the user along the spine or torso, the accelerometer is in almost the same orientation when the user is sitting as when the user is standing.
This means a transition between sitting and standing states cannot be detected by simply examining or comparing data from the accelerometer for example when the user is sitting and when the user is standing. Rather, the transition must be detected by analyzing the motion of the user as reported by the accelerometer during the movement from sitting to standing states, or from standing to sitting states.
On initial examination, the problem of detecting transitions between sitting and standing states using data from an accelerometer seems simple.
The output of the accelerometer at any point in time is a combination of two sets of forces: an acceleration due to gravity, and an acceleration due to user motion. Since the acceleration due to gravity is a constant, it should be possible to separate out the acceleration due to gravity, leaving the acceleration due to user motion.
Then, as taught by basic physics, the vertical velocity of the accelerometer over time is calculated from the acceleration due to user motion over time, and similarly the vertical distance the user moved over time is calculated from the vertical velocity over time. Using the vertical distance the user moved over time to detect vertical displacement, that is, changes in the up and down y distance over time, we can detect when the user transitions from the standing to sitting state, as y goes down a small amount, and when the user transitions from the sitting to standing state, with y going up a small amount. Conceptually this process seems simple.
But producing vertical distance over time using only data from an accelerometer in the real world is a problem with many challenges. One challenge is that accelerometers introduce errors into the acceleration data, including noise, offset errors, and scaling errors. These errors change with environmental factors such as temperature, change over time, and are different with respect to each axis measured. Errors in the acceleration data are magnified by the process of converting acceleration to velocity and then to distance, resulting in errors which increase over time as distance is determined.
Another challenge is separating acceleration due to gravity from acceleration due to user motion. One approach commonly used in other contexts, known as frequency analysis, is not applicable to detecting changes from sitting to standing and vice versa.
Another approach to separating acceleration due to gravity from acceleration due to user motion is to incorporate additional data from another type of sensor such as a gyroscope. Data from the gyroscope is used to compute angular data. This additional angular data simplifies the process of separating accelerometer data into acceleration due to gravity and acceleration due to user motion.
But gyroscopes introduce their own set of challenges, including the electrical power needed to run them, and more important, the computational power required to combine the output of the gyroscope with the output of the accelerometer. For the scale of small battery-operated devices meant to be worn inconspicuously by the user, the amount of computational power required to incorporate data from a gyroscope is relatively large. Such amounts of computational power require large amounts of electrical energy, which means either large batteries, or short battery life with frequent recharging, neither of which are desirable in a small, portable, consumer device.
These challenges introduced by using a gyroscope in addition to an accelerometer are easily avoided by not using a gyroscope. But that brings back the problem of detecting transitions between sitting and standing states using only an accelerometer, with its inherent sources of error.
What is needed is a method for detecting transitions between sitting and standing states, using an accelerometer attached to the user.